package cn.yitun.chat.yitunserverimapicore.business.group.service;

import cn.yitun.chat.yituncommonmessage.result.ResultMessage;
import cn.yitun.chat.yitunservercommonlib.crud.yitun.CrudService;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupCategoryDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.group.GroupCategoryInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupCategoryVo;

import java.util.List;

/**
 * 
 * Date 2019-01-20 21:05:24<br>
 * Description
 * 
 * @author yitun
 * @since 1.0.0
 */
public interface GroupCategoryService
		extends CrudService<GroupCategoryDto, GroupCategoryInfo, GroupCategoryVo> {


	/**
	 * 
	 * Date 2019-01-20 14:09:57<br>
	 * Description 获取所有分组
	 * 
	 * @author yitun
	 * @param userId
	 * @return
	 * @since 1.0.0
	 */
	List<GroupCategoryVo> getListByUserId(Long userId);

	GroupCategoryVo getVOById(Long userId, Long id);

	/**
	 * 
	 * Date 2019-01-20 14:04:32<br>
	 * Description 新增分组
	 * 
	 * @author yitun
	 * @param groupCategory
	 * @return
	 * @since 1.0.0
	 */
	ResultMessage add(Long key, GroupCategoryDto groupCategory);
	/**
	 * 
	 * Date 2019-01-20 14:06:12<br>
	 * Description 修改分组名称
	 * 
	 * @author yitun
	 * @param query
	 * @return
	 * @since 1.0.0
	 */
	ResultMessage updateName(Long key, GroupCategoryDto query);

	/**
	 * 
	 * Date 2019-01-20 17:26:21<br>
	 * Description 修改排序
	 * 
	 * @author yitun
	 * @return
	 * @since 1.0.0
	 */
	ResultMessage updateRank(Long key, GroupCategoryDto query);

	/**
	 * 
	 * Date 2019-01-20 16:56:33<br>
	 * Description
	 * 
	 * @author yitun
	 * @return
	 * @since 1.0.0
	 */
	ResultMessage delete(Long key, GroupCategoryDto query);

}
